Broadcast receiving terminal and program execution method

ABSTRACT

Under a resource manager, unexpected blocking is prevented without calling a handler for resolving a resource contention, by assigning a priority level depending on the program that has requested for a reservation of a resource as well as by assigning a special priority level which permits a reservation of a resource without any conditions in the case of a program which is urgently needed such as an EAS module.

CROSS-REFERENCE TO RELATED APPLICATION(S)

This application is a continuation application of U.S. application Ser.No. 11/421,126, filed May 31, 2006, now issued U.S. Pat. No. 8,677,368,which claims the benefit of U.S. Provisional Application No. 60/685,378,filed May 31, 2005, the contents of which are herein incorporated byreference in its entirety.

BACKGROUND OF THE INVENTION

(1) Field of the Invention

The present invention relates to a broadcast receiving terminal, inparticular, to a setup for facilitating viewing video, audio, and datasuch as a program by receiving a broadcast wave with which contents madeup of video, audio, and data such as a program which are mutuallysynchronized are multiplexed, as well as a setup for overcoming the casewhere a contention of a resource such as a tuner occurs between thecontents.

(2) Description of the Related Art

Various contents are included in a broadcast wave sent from a broadcaststation. Aside from video and audio used in a normal TV show, there arecases where data is included in the contents. There are several methodsfor sending the data, which can be roughly divided into a method ofsending the data chronologically and a method of repeatedly sending thedata per set interval. In the former method of sending the datachronologically, for example, data that continues over the course oftime is sent in sequential order. This method is suitable for sendinglarge amounts of data over a long period of time, but there is adrawback in that data that could not be received due to timing of thesend cannot be received again. On the other hand, in the later method ofrepeatedly sending the data at a set interval, the same data isrepeatedly sent any number of times during a fixed period. This methodhas an advantage in that during the period when the same data is beingsent, any one of the repeatedly-sent pieces of data can be received, andthus the timing of receiving is not limited. Data broadcast, representedby BML, and file sending through DSMCC data carousel are the examples ofthis method. It is unknown, particularly in broadcast, when a recipientwill select a channel and commence reception. In the method of sendingthe data chronologically, when the start of reception falls behind thetiming of the sending and acquisition of the data fails, the data cannotbe re-acquired. Therefore, when sending data such as an applicationprogram along with video and audio in the broadcast wave, the method ofrepeatedly sending the data per set interval is favorable.

At present, specifications for receiving a broadcast wave that includesvideo, audio, and an application program and executing the applicationprogram in synchronization with video and audio, as in the above method,have been developed and are in operation. It is possible to receive thesent application program, load the application program into a broadcastreceiving terminal (hereinafter to be simply referred to as “terminal”or “terminal apparatus”), and implement various extra functions byexecuting the application program, rather than simply viewing the videoand audio. This method for sending the application program and importingthe application program into the terminal is also called “downloading”.For example, a specification called Digital VideoBroadcasting-Multimedia Home Platform (DVB-MHP) ETSIES201812 v1.1.1(2003-12) has been developed in Europe, and operations according to thisspecification have already commenced. In addition, Open CableApplication Platform (OCAP), which provides the same specification inthe cable broadcast environment in the United States, is being developedin the United States, and actual operations are set to commence. Inthese specifications, the application program is written in the Javalanguage. Various Application Programming Interfaces (APIs) for tuning,graphics display, and the like are provided in the terminal, and theJava application program can control those functions by calling theAPIs.

In addition, in North America, the OCAP-DVROC-SP-OCAP-DVR-I01-040524specification, which is aimed at adding a function for recording andreproducing the contents in the OCAP specification, is being developed.With this specification, the video, audio, and the Java applicationprogram synchronized therewith are executed, which are sent as a cabletelevision broadcast, are recorded as contents, and furthermore, arereproduced in the same manner as when the recorded contents are directlyreproduced from the broadcast wave. The application program isreproduced in synchronization with the video and audio, in the samemanner as direct reproduction from the broadcast wave.

Moreover, with OCAP-DVR, trick play of the contents is realized byrecording broadcast contents to a high-speed random-accessible storagemedium, such as a hard disk, a semiconductor memory, and the like. Here,the trick play refers to functions for reproducing the contents at anarbitrary speed, from an arbitrary position, and so on, such asfast-forward, rewind, slow-motion, pause, skip, and the like. WithOCAP-DVR, the application program imported into the terminal from thebroadcast wave can control the recording and trick play of the contents.In other words, APIs for recording and trick play are provided in theterminal, and the Java application program controls each function bycalling those APIs.

Normally, in order that the application program is executed insynchronization with the video and audio, control information for thesynchronization is already multiplexed in the broadcast wave. Theapplication program is sequentially executed according to thesynchronization control information and is terminated. Thus, it ispossible to execute the application program by switching the program toan appropriate one in accordance with a specific scene of video andaudio.

The OCAP and OCAP-DVR standards provide for the case where a contentionbetween resources such as tuners and AV encoders occurs between theapplication programs, and defines a framework of invoking a handlerpreviously registered by a privileged application program or a frameworkthat is based on priorities held by the application programs, aiming toovercome such case.

SUMMARY OF THE INVENTION

As has been described above, the OCAP and OCAP-DVR standards provide forthe case where a contention of a resource such as a tuner and an AVencoder occurs between the application programs, and defines a frameworkof invoking a handler previously registered by a privileged applicationprogram or a framework that is based on priorities held by theapplication programs, aiming to overcome such case. Even in the casewhere the contention of a resource occurs, the resources areappropriately assigned to the application programs according to theframework.

In the case of invoking the handler previously registered by aprivileged application program in order to solve a contention of aresource, there is a possibility that the call may be blocked by a waitof user's input or the like. Though being blocked, there normally shouldbe no problems, but in the case where a forced tuning has to be executedfor notifying the user of an alert by an Emergency Alert System (EAS),when the call is blocked by the handler, the notification to the usermay be delayed.

In order to solve the above problem, in the case of emergency such thatthe forced tuning has to be executed in order to inform the user of theEAS alert, the handler that may block shall not be invoked even thoughthe handler is previously registered by the privileged applicationprogram.

The present invention is therefore conceived in view of theabove-mentioned problems, and provides a broadcast receiving terminalwhich can promptly execute forced tuning so as to inform the user of analert without destroying the conventional framework for solving theproblem of resource contention and without unexpected blocking uponinvoking a resource contention handler already registered by aprivileged Java program, even in the case where forced tuning is causedby EAS.

In one embodiment of the disclosure, there is a broadcast receivingterminal, comprising: a program executioner configured to controlexecution of a program according to a priority level of the program; aresource contention detector configured, in a case where a reservationof a resource is requested according to the execution of the programperformed by said program executioner, to detect whether or not acontention of the resource occurs due to a fact that the requestedresource has already been reserved by another program executed by saidprogram executioner; a resource reservation program determinerconfigured, when the contention occurs, to: (i) when the programrequesting the reservation of the resource is not a program having ahighest priority level, call a resource contention handler for resolvingthe contention in the case where the resource contention handler isregistered, and determine to permit a program according to a prioritylevel returned from the resource contention handler, and determine topermit the program to reserve the resource which is under contention,according to the priority level of the program, in the case where theresource contention handler is not registered, and (ii) when the programhas the highest priority level, determine to permit the program havingthe highest priority level to reserve the resource which is undercontention without calling and utilizing the resource contentionhandler; and a resource reservation program notifier configured tonotify of the reservation of the resource to the program which ispermitted to reserve the resource, based on the determination made bysaid resource reservation program determiner, wherein, after the programhaving the highest priority has been executed for the predeterminedamount of time, the resource reservation program determiner informsother programs that the resource reserved by the program having thehighest priority has been released.

In another embodiment, there is a program execution method for executinga program in a broadcast receiving terminal, comprising: controlling,via a program executioner, execution of a program according to apriority level of the program; detecting, via a resource contentiondetector, when a reservation of a resource is requested according to theexecution of the program performed by said program executioner, whetheror not a contention of the resource occurs due to a fact that therequested resource has already been reserved by another program executedby said program executioner; determining, via a resource reservationprogram determiner, when the contention occurs, to: (i) when the programrequesting the reservation of the resource is not a program having ahighest priority level, call a resource contention handler for resolvingthe contention in the case where the resource contention handler isregistered, and determine to permit a program to reserve the resourcewhich is under contention, according to a priority level returned fromthe resource contention handler, and determine to permit the specifiedprogram to reserve the resource which is under contention, according tothe priority level of the program in the case where the resourcecontention handler is not registered, and (ii) when the program has thehighest priority level, determine to permit the program having thehighest priority level to reserve the resource which is under contentionwithout calling and utilizing the resource contention handler; andnotifying, via a resource reservation program notifier, of thereservation of the resource to the program which is permitted to reservethe resource, based on the determination made by said resourcereservation program determiner, wherein, after the program having thehighest priority has been executed for the predetermined amount of time,the resource reservation program determiner informs other programs thatthe resource reserved by the program having the highest priority hasbeen released.

Note that the present invention can be realized not only as suchbroadcast receiving terminal, but also as a method of executing aprogram in the broadcast receiving terminal, and as a program for thebroadcast receiving terminal, and even as a computer-readable storagemedium, such as a CD-ROM, in which the program is stored.

With the broadcast receiving terminal and the program execution methodaccording to the present invention, it is possible to rapidly execute aforced tuning so as to notify the user of an alert, without destroyingthe conventional framework for solving the problem of resourcecontention and without unexpected blocking upon invoking a resourcecontention handler already registered by a privileged Java program evenin the case where forced tuning is caused by EAS.

As further information about technical background to this application,the disclosure of U.S. Provisional Application No. 60/685,378, filed May31, 2005, including specification, drawings and claims is incorporatedherein by reference in its entirety.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other objects, advantages and features of the invention willbecome apparent from the following description thereof taken inconjunction with the accompanying drawings that illustrate a specificembodiment of the invention. In the Drawings:

FIG. 1 is a configuration diagram of a broadcast system according to thepresent invention;

FIG. 2 is an example of how to use a frequency band used incommunications between a broadcast station side system and a terminalapparatus in a cable television system according to the presentinvention;

FIG. 3 is an example of how to use a frequency band used incommunications between a broadcast station side system and a terminalapparatus in a cable television system according to the presentinvention;

FIG. 4 is an example of how to use a frequency band used incommunications between a broadcast station side system and a terminalapparatus in a cable television system according to the presentinvention;

FIG. 5 is a diagram showing a structure of a TS packet predefined byMPEG-2 specifications;

FIG. 6 is a schematic diagram of an MPEG-2 transport stream;

FIG. 7 is an example of division when a PES packet predefined by MPEG-2specifications is carried in TS packets;

FIG. 8 is an example of division when an MPEG-2 section predefined byMPEG-2 specifications is carried in TS packets;

FIG. 9 is a diagram showing a structure of an MPEG-2 section predefinedby MPEG-2 specifications;

FIG. 10 is an example of use of an MPEG-2 section predefined by MPEG-2specifications;

FIG. 11 is an example of use of a PMT predefined by MPEG-2specifications;

FIG. 12 is an example of use of a PAT predefined by MPEG-2specifications;

FIG. 13 is a configuration example of a hardware configuration of abroadcast recording and reproduction apparatus according to the presentinvention;

FIG. 14 is an example of a front panel of an input unit 1310 in ahardware configuration of a terminal apparatus 1200 according to thepresent invention;

FIG. 15 is an example of a device connection at the time of recording,in the recording and reproduction apparatus according to the presentinvention;

FIG. 16 is an example of a device connection at the time ofreproduction, in the recording and reproduction apparatus according tothe present invention;

FIG. 17 is a diagram showing a structure of a program stored in aterminal apparatus according to the present invention;

FIG. 18 is an example of an EPG executed by a terminal apparatusaccording to the present invention;

FIG. 19 is an example of an EPG executed by a terminal apparatusaccording to the present invention;

FIG. 20 is an example of information stored in a secondary storage unitaccording to the present invention;

FIG. 21 is an example of a record information management table accordingto the present invention;

FIG. 22 is a schematic diagram showing the details of the AIT prescribedby the DVB-MHP specification according to the present invention;

FIG. 23 is a schematic diagram showing a file system sent in DSMCCformat according to the present invention;

FIG. 24 is an example of a device connection at the time of recording,in the recording and reproduction apparatus according to the presentinvention;

FIG. 25 is an example of a device connection at the time ofreproduction, in the recording and reproduction apparatus according tothe present invention;

FIG. 26 is an example of a record information management table accordingto the present invention;

FIG. 27 is an example of a structure of a library according to thepresent invention;

FIG. 28 is an example of a data format of alert information according tothe present invention;

FIG. 29 is an example of a structure of a resource manager according tothe present invention;

FIG. 30 is an example of resource management information according tothe present invention;

FIG. 31 is an example of processing program information according to thepresent invention;

FIG. 32 is a flowchart for registering a resource contention handler,according to the present invention;

FIG. 33 is a flowchart for resolving a resource contention when a forcedtuning occurs, according to the present invention;

FIG. 34 is a flowchart for reallocating a resource when a forced tuningis terminated, according to the present invention;

FIG. 35 is an example of resource priority reserve program informationaccording to the present invention; and

FIG. 36 is a flowchart for resolving a resource contention when a forcedtuning occurs, according to the present invention.

DESCRIPTION OF THE PREFERRED EMBODIMENT(S) First Embodiment

Hereafter, a broadcast receiving terminal and a program execution methodaccording to the first embodiment of the present invention will bedescribed with reference to the drawings. In the present embodiment, acable television broadcast system is described as an example. In thecable television broadcast system, the broadcast receiving terminalapparatus of the present invention is, for instance, a broadcastrecording and reproduction apparatus, and is generally called a terminalapparatus.

FIG. 1 is a block diagram showing a relationship of apparatuses thatmake up a broadcast system; the broadcast system is configured of abroadcast station side system 101 (head-end), a terminal apparatus A111,a terminal apparatus B112, and a terminal apparatus C113. A coupling 121between the broadcast station side system and each terminal apparatusis, in the cable system, a wired coupling such as a coaxial cable, afiber-optic cable, and the like. In FIG. 1, one broadcast station sidesystem is coupled with three terminal apparatuses, but the number ofterminal apparatuses is arbitrary.

The broadcast station side system 101 sends information such asvideo/audio/data for data broadcast in a broadcast signal to a pluralityof terminal apparatuses. The broadcast signal is sent using a frequencywithin a frequency band set by operational regulations of the broadcastsystem and the laws of a country/region in which the broadcast system isoperated, and so on.

With the cable system according to the present embodiment, the frequencyband used in broadcast signal transmission is divided into the datacontent and transmission direction (inbound, outbound) and then applied.FIG. 2 is a chart indicating one example of the division of thefrequency band. The frequency band is roughly divided into two types:Out Of Band (abbr. OOB) and In-Band. 5 MHz to 130 MHz is assigned asOOB, and is mainly used in in-bound/out-bound data exchange between thebroadcast station side system 101 and the terminal apparatus A111, theterminal apparatus B112, and the terminal apparatus C113. 130 MHz to 864MHz is assigned as In-Band, and is mainly used in an outbound-onlybroadcast channel that includes video/audio. QPSK modulation scheme isused with OOB, and QAM64 or QAM256 modulation type is used with In-Band.Modulation scheme technology is generally known and of little concern tothe present invention, and therefore detailed description is omitted.FIG. 3 is one example of a more detailed use of the OOB frequency band.70 MHz to 74 MHz is used in outbound data sending from the broadcaststation side system 101, and all of the terminal apparatus A111, theterminal apparatus B112, and the terminal apparatus C113 receive thesame data from the broadcast station side system 101. On the other hand,10.0 MHz to 10.1 MHz is used in inbound data sending from the terminalapparatus A111 to the broadcast station side system 101; 10.1 MHz to10.2 MHz is used in inbound data sending from the terminal apparatusB112 to the broadcast station side system 101; and 10.2 MHz to 10.3 MHzis used in inbound data sending from the terminal apparatus C113 to thebroadcast station side system 101. Through this, it is possible toindependently send unique data from each terminal apparatus A111, B112,and C113 to the broadcast station side system 101. FIG. 4 is one exampleof use of the In-Band frequency band. 150 MHz to 156 MHz and 156 MHz to162 MHz are assigned to a TV channel 1 and a TV channel 2 respectively,and thereafter, TV channels are assigned at 6 MHz intervals. Radiochannels are assigned in 1 MHz units from 310 MHz on. Each of thesechannels may be used as analog broadcast or as digital broadcast. In thecase of transmitting digital broadcast, a TS packet format based on theMPEG-2 specifications is used for the transmission, and it is alsopossible to send data for various data broadcast and TV show compositioninformation for configuring EPG, in addition to audio and video.

The broadcast station side system 101 uses the frequency bands describedabove to send an appropriate broadcast signal to the terminalapparatuses, and therefore, has a QPSK modulation unit, a QAM modulationunit, and so on. In addition, the broadcast station side system 101 hasa QPSK demodulator for receiving data from the terminal apparatuses.Moreover, the broadcast station side system 101 can be thought of ashaving various devices related to the modulation units and thedemodulation unit. However, the present invention relates mainly to theterminal apparatuses, and therefore detailed descriptions are omitted.

The terminal apparatuses A111, B112, and C113 have a QAM demodulationunit and a QPSK demodulation unit in order to receive and reproduce abroadcast signal from the broadcast station side system 101. Inaddition, each terminal apparatus has a QSPK modulation unit in order tosend the data unique to the apparatus to the broadcast station systemside 101. In the present invention, the terminal apparatuses arebroadcast recording and reproduction apparatuses, and detailedconfigurations will be described later.

The broadcast station side system 101 modulates an MPEG-2 transportstream and transmits the stream within the broadcast signal. Theterminal apparatuses receive the broadcast signal, demodulate thebroadcast signal so as to reproduce the MPEG-2 transport stream, extractnecessary information wherefrom, and use the extracted information. Inorder to describe a device function and connection structure present inthe terminal apparatus, the structure of the MPEG-2 transport streamwill be first described in a simple manner.

FIG. 5 is a diagram showing the structure of a TS packet. A TS packet500 has a length of 188 bytes, and is composed of a header 501, anadaptation field 502, and a payload 503. The header 501 holds controlinformation of the TS packet. The header 501 has a length of 4 bytes,and a structure presented by 504. In the header 501 there is a fielddenoted as “Packet ID” (hereafter, PID), and the TS packet is identifiedthrough the value of this PID. The adaptation field 502 holds additionalinformation such as time information. The adaptation field 502 does notnecessarily have to be present, and there are cases where the adaptationfield 502 is not present. The payload 503 holds information carried inthe TS packet, such as video, audio, and data broadcast data.

FIG. 6 is a schematic diagram of an MPEG-2 transport stream; The TSpacket holds various information in the payload, such as video, audio,data used for data broadcast, alert, and the like. A TS packet 601 and aTS packet 603 hold a PID 100 in the header, and hold informationregarding video 1 in the payload. A TS packet 602 and a TS packet 605hold a PID 200 in the header, and hold information regarding data 1 inthe payload. A TS packet 604 holds a PID 300 in the header, and holdsinformation regarding audio 1 in the payload. A TS packet 606 holds aPID 400 in the header, and holds information regarding alert 1 in thepayload. Mixing TS packets which hold various types of data in thepayloads and transmitting these as a series in sequence is calledmultiplexing. An MPEG-2 transport stream 600 is one example of aconfiguration in which the TS packets 601 to 605 are multiplexed.

TS packets that have identical PIDs hold identical types of information.Therefore, the terminal apparatus reproduces video and audio, data suchas TV show composition information, by receiving multiplexed TS packetsand extracting, per PID, the information held by the TS packet. In FIG.6, the TS packet 601 and the TS packet 603 each transmit informationregarding the video 1, and the TS packet 602 and the TS packet 605 eachtransmit information regarding the data 1.

Here, description is given regarding a format of various types of datacontained in the payload.

Video and audio are represented by a format called a PacketizedElementary Stream (PES) packet. The PES packet includes videoinformation and audio information of a certain time period, and byreceiving the PES packet, the broadcast recording and reproductionapparatus can output the video and audio information contained in thatPES packet to a screen and a speaker. The broadcast station transmitsthe PES packets without pause, and therefore it is possible for thebroadcast recording and reproduction apparatus to continuously reproducethe video and audio without pause. When the PES packet is actuallytransmitted, the PES packet is divided and stored in the payloads of aplurality of TS packets in the case where the PES packet has a sizelarger than the payload of one TS packet. FIG. 7 shows an example of thedivision when a PES packet is transmitted. A PES packet 701 is too largeto be stored and transmitted in a payload of a single TS packet, andtherefore the PES packet 701 is divided into a PES packet division A 702a, a PES packet division B 702 b, and a PES packet division C 702 c, andis carried in three TS packets 703 to 705 which have identical PIDs. Inactuality, the video and audio is obtained as an elementary stream (ES)that is obtained by concatenating data contained in the payloads of aplurality of PES packets. The elementary stream is in the form ofdigitalized video and audio, such as defined by the MPEG-2 Videostandards, the MPEG-1 and 2 Audio standards, and the like.

On the other hand, information such as the TV show compositioninformation and data used for data broadcast is expressed using a formatcalled MPEG-2 section. When the MPEG-2 section is actually transmitted,the MPEG-2 section is divided and stored in the payloads of a pluralityof TS packets in the case where the MPEG-2 section has a size largerthan the payload of one TS packet. FIG. 8 shows an example of thedivision when the MPEG-2 section is transmitted. As an MPEG-2 section801 is too large to be stored and transmitted in a payload of a singleTS packet, the MPEG-2 section 801 is divided into a section division A802 a, a section division B 802 b, and a section division C 802 c, andis carried in three TS packets 803 to 805 which have identical PIDs.

FIG. 9 presents a structure of such MPEG-2 section. An MPEG-2 section900 is structured by a header 901 and a payload 902. The header 901holds control information of the MPEG-2 section. The composition of theheader 901 is presented by a header structure 903. The payload 902 holdsdata transmitted by the MPEG-2 section 900. A table_id present in theheader configuration 903 represents the type of the MPEG-2 section, anda table_id_extension is an extension identifier used when furtherdistinguishing between MPEG-2 sections, each having an identicaltable_id. The case of transmitting the TV show composition informationis shown in FIG. 10 as an example of use of the MPEG-2 section. In thisexample, as written in a row 1004, information necessary fordemodulation of the broadcast signal is written in the MPEG-2 sectionthat has a table_id of 64 in the header configuration 903, and thisMPEG-2 section is further transmitted by a TS packet with a PID of 16.

The PES format does not exist in the case of the MPEG-2 section. Forthat reason, the elementary stream (ES) is a concatenation of thepayloads of the TS packets identified by the identical PIDs within theMPEG-2 transport stream. For example, in FIG. 8, all of the TS packets803 to 805, in which the MPEG-2 section 801 is divided and transmitted,are identified with the PID of 200. It can be said that this is an ESwhich transmits the MPEG-2 section 801.

A concept called a program further exists in the MPEG-2 transportstream. The program is expressed as a collection of ESs, and is used inthe case where handling a plurality of ESs all together is desirable.With the use of the program, it is possible to handle video/audio, aswell as accompanying data broadcast data, all together. For example, inthe case of handling together the video/audio to be simultaneouslyreproduced, by grouping the video ES and the audio ES as a program, itcan be seen that the broadcast recording and reproduction apparatusshould simultaneously reproduce these two ESs as one TV show.

To express the program, two tables, called a Program Map Table (PMT) anda Program Association Table (PAT) are used in MPEG-2. Detaileddescriptions can be found in the specifications of ISO/IEC 13818-1,“MPEG-2 Systems”. The PMT and the PAT are briefly described hereafter.

The PMT is a table included in the MPEG-2 transport stream, in a numberas many as that of the program. The PMT is configured as an MPEG-2section, and has a table_id of 2. The PMT holds a program number used inidentifying the program and additional information of the program, aswell as information regarding an ES belonging to the program. An exampleof the PMT is given in FIG. 11. 1100 is a program number. The programnumber is assigned uniquely to programs in the same transport stream,and is used in identifying the PMT. Rows 1111 to 1115 expressinformation regarding individual ESs. A column 1101 is a type of ES, inwhich “video”, “sound”, “data”, and so on are specified. A column 1102is the PID of the TS packets that make up the ES. A column 1103 isadditional information regarding the ES. For example, the ES shown inrow 1111 is an audio ES, and is carried in the TS packets with a PID of5011.

The PAT is a table, of which only one is present, in the MPEG-2transport stream. The PAT is configured as an MPEG-2 section, has atable_id of 0, and is carried in the TS packet with a PID of 0. The PATholds a transport_stream_id used in identification of the MPEG-2transport stream, and information regarding all the PMTS that representa program in the MPEG-2 transport stream. An example of the PAT is givenin FIG. 12. 1200 indicates a transport_stream_id. Thetransport_stream_id is used in identifying the MPEG-2 transport stream.Rows 1211 to 1213 express information regarding the program. A column1201 indicates a program number. A column 1202 indicates the PID of theTS packet which sends the PMT that corresponds to the program. Forexample, the PMT of the program shown in row 1211 has a program numberof 101, and the corresponding PMT is carried in the TS packet with a PIDof 501.

In the case where the terminal apparatus reproduces a certain program,the terminal apparatus and specifies the video and audio that make up aprogram, with reference to the PAT and the PMT, and reproduces thatvideo and audio. For example, in regards to the MPEG-2 transport streamthat transmits the PAT in FIG. 12 and the PMT in FIG. 11, the followingprocedure is taken in the case where the video and audio belonging tothe program with a program number of 101 are reproduced. First, a PATtransmitted as an MPEG-2 section with a table_id of “0” is acquired froma TS packet with a PID of “0”. The PAT is searched for a program withthe program number “101”, and row 1211 is obtained. From row 1211, thePID “501”, of the TS packet which transmits the PMT of the program witha program number “101”, is obtained. Next, the PMT transmitted as aMPEG-2 section with a table_id of “2” is acquired from the TS packetwith a PID of “501”. Row 1111, which is audio ES information, and row1112, which is video ES information, are obtained from the PMT. A PID“5011” of the TS packet which transmits the audio ES is obtained fromrow 1111. In addition, a PID “5012” of the TS packet which transmits thevideo ES is obtained from row 1112. Next, an audio PES packet isacquired from the TS packet with a PID “5011”, and a video PES packet isacquired from the TS packet with a PID of “5012”. Through this, it ispossible to acquire the video and audio ES packets to be reproduced, andthe video and audio which make up the program number 101 can bereproduced.

Note that there are cases where the MPEG-2 transport stream isscrambled. This is a setup called conditional access system. Forexample, by scrambling the PES packets which transmit certainvideo/audio information, only specified viewers who can descramble themare able to view that video and audio information. In order todescramble them and view the video and audio, a viewer must descrambleusing a device called a descrambler. For example, in an OCAP-compatibleterminal apparatus, a card-type adapter with a built-in descrambler isused. A cable television operator distributes an adapter configured tobe able to descramble a specific program to each viewer, and the viewerinserts that adapter into the terminal apparatus. Upon doing so, theadapter descrambles the specific program based on descramblinginformation such as a descrambling key and contract information of eachcontract holder. A method of descrambling, a method of obtaining thedescrambling key, and the like, depend on the adapter, and have noinfluence on the realization of the present invention.

Thus far, simple descriptions regarding the MPEG-2 specifications havebeen provided; hereafter, detailed definitions of terminology are given.In the present invention, two types of the term “program” exist. One isa “program” which appears in the MPEG-2 specifications, and the other isa “program” referring to an assemblage of code executed by a CPU. As theformer is synonymous with the term “service” used in the operationregulations, hereafter, to avoid confusion, the former is called“service” and the latter is called simply “program”. Furthermore,concerning the latter, a “program” particularly written in the Javalanguage is called a “Java program”.

Description has been given regarding several kinds of generalinformation specified in the MPEG-2 specifications, according to thepresent invention. Hereafter, a hardware configuration prerequisite tothe present embodiment is described.

FIG. 13 is a block diagram showing a general hardware configuration ofthe broadcast recording and reproduction apparatus according to thepresent embodiment; in other words, a specific internal configuration ofthe terminal apparatuses 111, 112, and 113 shown in FIG. 1. 1300 is thebroadcast recording and reproduction apparatus, which is configured of:a tuner 1301; a TS decoder (TS Demultiplexer) 1302; an AV decoder 1303;a speaker 1304; a display 1305; a CPU 1306; a secondary storage unit1307; a primary storage unit 1308; a ROM 1309; an input unit 1310; anadapter 1311; an AV encoder 1312; and a multiplexer (MPEG-2 TransportStream Multiplexer or the like) 1313. Note that the present embodimentis obtained by expanding a broadcast recording and reproduction terminalimplemented by the OCAP-DVR specifications and the basic hardwareconfiguration is nearly identical to that required by the OCAP-DVRspecifications.

The tuner 1301 is a device which demodulates a broadcast signalmodulated and transmitted from the broadcast station side system 101, inaccordance with tuning information including a frequency prescribed bythe CPU 1306. Here, the tuning information is information that canspecify a frequency, a modulation method, and the like. An MPEG-2transport stream, obtained as a result of the demodulation performed bythe tuner 130, 1 passes through the adapter 1311 that has a descramblingfunction, and is sent to the TS decoder 1302.

The TS decoder 1302 is a device which has a function to segregate PESpackets and MPEG-2 sections which comply with specified conditions fromthe MPEG-2 transport stream, based on a PID, a section filter condition,and so on prescribed by the CPU 1306. In the case where a broadcast isreceived and a service is reproduced without recording, the MPEG-2transport stream outputted by the adapter 1311 is inputted to the TSdecoder 1302. On the other hand, in the case of reproducing a servicerecorded in the secondary storage unit 1307, the MPEG-2 transport streamwhich the secondary storage unit 1307 outputs is inputted to the TSdecoder 1302. Which input to receive is controlled by the CPU 1306.

The PES packets of the video and audio segregated by the TS decoder 1302are outputted to the AV decoder 1303. In addition, the MPEG-2 sectionsegregated by the TS decoder 1302 is transferred to the primary storageunit 1308 through Direct Memory Access (DMA), and is used by a programexecuted by the CPU 1306.

The AV decoder 1303 is a device with a function to decode the encodedvideo ES and audio ES. The AV decoder fetches the ES from the PES packetthat transmits the audio and video information sent from the TS decoder,and decodes the ES. An audio signal and a video signal obtained throughthe decoding performed by the AV decoder 1303 are sent to the speaker1304 and the display 1305 at the time of service reproduction, but aresent to the AV encoder 1312 at the time of service recording. Whichoutput route to take is controlled by the CPU 1306 according to aninstruction from the user.

The speaker 1304 reproduces audio outputted from the AV decoder 1303.

The display 1305 reproduces video outputted from the AV decoder 1303.

The CPU 1306 executes a program that operates in the broadcast recordingand reproduction apparatus. The CPU 1306 executes a program contained inthe ROM 1309. Or, the CPU 1306 also executes a program downloaded from abroadcast signal or a network and held in the primary storage unit 1308.Or, the CPU 1306 executes a program downloaded from a broadcast signalor a network and held in the secondary storage unit 1307. The tuner1301, TS decoder 1302, AV decoder 1303, speaker 1304, display 1305,secondary storage unit 1307, primary storage unit 1308, ROM 1309, inputunit 1310, adapter 1311, AV encoder 1312 and multiplexer 1313 arecontrolled in accordance with the directions of the executed program. Inaddition, the CPU 1306 is capable of controlling the adapter 1311 bycommunicating not only with the devices present within the terminalapparatus 1300, but also with the devices within the adapter 1311.

The secondary storage unit 1307 is a memory apparatus, the memory ofwhich is not deleted even if the power supply to the device isinterrupted. Such secondary storage unit 1307 is configured of devices,e.g., a nonvolatile memory such as a FLASH-ROM, a Hard Disk Drive (HDD),a rewritable media such as a CD-R and a DVD-R, the information of whichis not deleted even if the power supply of the terminal apparatus 1300is cut off. The secondary storage unit 1307 saves information accordingto an instruction from the CPU 1306.

The primary storage unit 1308 is a device which has a function fortemporarily saving information in accordance with an instruction fromthe CPU 1306, a DMA-transmittable device, and so on, and is configuredof a RAM or the like.

The ROM 1309 is a non-rewritable memory device, and to be more specific,is configured of a ROM, a CD-ROM, a DVD, and the like. The program whichthe CPU 1306 executes is stored in the ROM 1309.

The input unit 1310 is, to be more specific, configured of a front panelor a remote control receiver, and accepts an input from the user. FIG.14 is one example of a case where the input unit 1310 is configured ofthe front panel. A front panel 1400 has seven buttons: an up cursorbutton 1401, a down cursor button 1402, a left cursor button 1403, aright cursor button 1404, an OK button 1405, a cancel button 1406, anEPG button 1407, and a mode switch button 1408. When the user presses abutton, an identifier of the pressed button is notified to the CPU 1306.

The adapter 1311 is a device for descrambling a scrambled MPEG-2transport stream sent in the In-band frequency range, and includes oneor more descramblers. The MPEG-2 transport stream outputted by the tuner1301 a is inputted into the adapter 1311, and descrambling is carriedout on the TS packet that has the PID specified by the CPU 1306. Theadapter 1311 outputs the descrambled MPEG-2 transport stream to the TSdecoder 1302.

Furthermore, the adapter 1311 carries out format conversion of data sentin an OOB frequency range. The information sent in the OOB frequencyrange may be alert information that urgently needs to be displayed, andis modulated by the QPSK modulation scheme. Regarding outboundtransmission, the QPSK demodulator 1301 b demodulates the outgoingsignal sent from the broadcast station side system 101, and inputs agenerated bit stream into the adapter 1311. The adapter 1311 extractsinformation specified by the CPU 1306 from the various informationincluded in the bit stream, converts the information to a format thatcan be interpreted by a program that operates in the CPU 1306, andprovides this to the CPU 1306. On the other hand, regarding inboundtransmission, the CPU 1306 inputs information to be sent to thebroadcast station side system 101 into the adapter 1311. The adapter1311 converts the information inputted from the CPU 1306 to a formatthat can be interpreted by the broadcast station side system 101, andinputs this to the QPSK modulator 1301 c. The QPSK modulator 1301 cQPSK-modulates the information inputted from the adapter 1311, and sendsthis to the broadcast station side system 101.

A Cable CARD, formerly called a Point of Deployment (POD), used in theUnited States cable system, can be given as a specific example of theadapter 1311.

The AV encoder 1312 encodes the audio signal decoded by the AV decoder1303 into audio in the MPEG audio format, and encodes the video signalinto video in the MPEG video format. The video and audio encoded by theAV encoder 1312 are outputted to the multiplexer 1313.

The multiplexer 1313 is a device with a function for multiplexing thevideo and audio inputted from the AV encoder 1312 into an MPEG-2transport stream.

An operation in which the broadcast recording and reproduction apparatusdescribed above records a service contained in a broadcast wave into thesecondary storage unit 1307, and an operation where the broadcastrecording and receiving apparatus consecutively reads out from thesecondary storage unit 1307 and reproduces the service, is hereafterdescribed in detail.

First, the operation in which the service contained in the broadcastwave is recorded into the secondary storage unit 1307 is described.

FIG. 15 shows a conceptual rendering which represents the physicalconnection sequence, processing details, and input/output data format ofeach device during recording of the service. 1500 is a terminalapparatus, which has: the tuner 1301; the adapter 1311; a descrambler1501; the TS decoder 1302; a PID filter 1502; a section filter 1503; theAV decoder 1303; the primary storage unit 1308; the AV encoder 1312; themultiplexer 1313; and a recording area 1504. Constituent elements inFIG. 15 that have the same numbers as in FIG. 13 have the same functionsand thus descriptions are omitted.

First, the tuner 1301 performs tuning on the broadcast wave inaccordance with tuning information prescribed by the CPU 1306. Here, thetuning information is information that can specify a frequency, amodulation method, and the like. The tuner 1301 demodulates thebroadcast wave and inputs the MPEG-2 transport stream into the adapter1311.

The descrambler 1501, which is within the adapter 1311, descrambles fromthe MPEG-2 transport stream based on conditional access information foreach viewer. The descrambled MPEG-2 transport stream is inputted intothe TS decoder.

Two types of devices that process the MPEG-2 transport stream arepresent within the TS decoder 1302: the PID filter 1502 and the sectionfilter 1503.

The PID filter 1502 extracts, from the inputted MPEG-2 transport stream,a TS packet that has a PID specified by the CPU 1306, and then extractsa PES packet and an MPEG-2 section present in that payload. For example,when the MPEG-2 transport stream in FIG. 6 is inputted in the case wherethe CPU 1306 has instructed PID filtering which extracts the TS packetwith a PID=100, packets 601 and 603 are extracted, then concatenated,and thus a PES packet of a video 1 is reconfigured. Or, when the MPEG-2transport stream in FIG. 6 is inputted in the case where the CPU 1306has instructed PID filtering which extracts the TS packet with aPID=200, packets 602 and 605 are extracted, then concatenated, and thusan MPEG-2 section of data 1 is reconfigured.

The section filter 1503 extracts, from among the inputted MPEG-2sections, the MPEG-2 section which conforms to a section filtercondition specified by the CPU 1306 and DMA-transfers this MPEG-2section to the primary storage unit 1308. For example, the CPU 1306specifies, to the section filter 1503, PID filtering which extracts theTS packet with a PID=200, and section filtering which extracts a sectionwith a table_id of 64. As mentioned earlier, after the MPEG-2 section ofthe data 1 is reconfigured, the section filter 1503 extracts only thesection with a table_id of 64 from among those MPEG-2 sections, andDMA-transfers this to the primary storage unit 1308.

The MPEG-2 section that is inputted into the primary storage unit 1308is inputted into the multiplexer 1313.

A video PES packet and an audio PES packet extracted by the TS decoder1302 are inputted into the AV decoder 1303.

The AV decoder decodes the video PES packet so as to convert it intovideo, and inputs the video into the AV encoder 1312. The AV decoderalso decodes the audio PES packet so as to convert it into audio, andinputs the audio into the AV encoder 1312.

The AV encoder 1312 converts the video into MPEG video and inputs thisinto the multiplexer 1313. The AV encoder 1312 also converts the audiointo MPEG audio and inputs this into the multiplexer 1313.

The multiplexer 1313 multiplexes the MPEG video and MPEG audio inputtedfrom the AV encoder, with the MPEG-2 section inputted from the primarystorage unit 1308, and thus generates an MPEG-2 transport stream. Thegenerated MPEG-2 transport stream is recorded into the recording area1504.

The recording area 1504 is made up of all or a part of the secondarystorage unit 1307, or another recording area, and records the MPEG-2transport stream that makes up a service.

Next, an operation, in which the service is consecutively read out fromthe secondary storage unit 1307 and reproduced, will be described.

FIG. 16 shows a conceptual rendering which represents the physicalconnection sequence, processing details, and input/output data format ofeach device during reproduction of the service. 1600 is a terminalapparatus, which has: the recording area 1504; the TS decoder 1302; thePID filter 1502; the section filter 1503; the AV decoder 1303; thespeaker 1304; the display 1305; and the primary storage unit 1308.Constituent elements in FIG. 16 that have the same numbers as in FIG. 13have the same functions and thus the description is omitted.

In the order described in FIG. 15, the MPEG-2 transport stream recordedin the recording area 1504 is inputted into the TS decoder 1302.

Then, a video PES and an audio PES that have a PID specified by the CPU1306 are extracted by the PID filter 1502 within the TS decoder 1302.The extracted PES packet is inputted into the AV decoder 1303. Or, theMPEG-2 section that has a PID and a table_id specified by the CPU 1306is extracted by the PID filter 1502 and the section filter 1503 withinthe TS decoder 1302. The extracted MPEG-2 section is DMA-transferred tothe primary storage unit 1308.

The video PES and the audio PES inputted into the AV decoder 1303 aredecoded and outputted as an audio signal and a video signal. After that,the audio signal and the video signal are inputted into the display 1305and the speaker 1304, thus reproducing the audio and the video.

The MPEG-2 section inputted into the primary storage unit 1308 isinputted into the CPU 1306.

Thus far, an example of a hardware configuration regarding the presentinvention has been described. Hereafter, a chief function of the presentinvention, which is control of recording the service and trick-modecontrol, via a Java program, is described.

Recording of the service in the present invention refers to recordingvideo, audio, a Java program, synchronization information of the Javaprogram, and so on that are contained in the service, into a storagemedium such as a hard disk, a Blu-ray Disc (BD), a Digital VersatileDisc (DVD), and a Secure Digital (SD) memory card. Reproduction of theservice refers to execution and reproduction of the video, audio, andJava program recorded in the recording medium, based on thesynchronization information. It is required that a reproduction resultof a recorded service is almost equivalent to a result of directlyreproducing the service upon receiving a broadcast wave.

FIG. 17 is a configuration diagram of a program necessary for recordingand reproduction of the service, and is software recorded in the ROM1309.

A program 1700 is configured of an OS 1701, an EPG 1702, a Java VM 1703,and a Java library 1704, which are sub-programs.

The OS 1701 is an Operating System; Linux, Windows, and the like areexamples. The OS 1701 is configured of: a kernel 1701 a for executingother sub-programs such as the EPG 1702 and the Java VM 1703; a library1701 b used by the sub-programs to control the constituent elements ofthe terminal apparatus 1300; and an EAS module 1701 c. The kernel 1701 ais publicly-known technology and therefore the detailed description isomitted.

The library 1701 b provides, for example, a tuning function forcontrolling a tuner. The library 1701 b accepts, from anothersub-program, tuning information that can specify a frequency and amodulation scheme, and supplies the information to the tuner 1301. Thetuner 1301 performs demodulation processing based on the provided tuninginformation, and can pass the demodulated MPEG-2 transport stream to theTS decoder 1302. As a result, other sub-programs can control the tuner1301 through the library 1701 b.

Also, the library 1701 b provides channel information for uniquelyidentifying a channel. An example of the channel information is shown inFIG. 20. The channel information is sent using an OOB or an In-bandfrequency range, is converted into a chart format by the adapter 1311,and is stored in a temporary memory unit accessible by the library. Acolumn 2001 is a channel identifier, and is equivalent to, for example,a source_ID as defined by SCTE65 Service Information DeliveredOut-Of-Band For Digital Cable Television. A column 2002 is a channelname, and is equivalent to a source_name as defined by the same SCTE65standard. A column 2003 is tuning information, and is information whichcan specify a frequency, a transfer rate, a modulation scheme, and thelike that is given to the tuner 1301. A column 2004 is a program numberfor specifying the PMT. For example, a row 2011 is a group of serviceinformation with a channel identifier of “1”, a channel name of“channel”, a frequency of “150 MHz, . . . ” for the tuning information,and a program number of “101”.

FIG. 27 is a diagram showing a detailed structure of the library 1701 b.With reference to FIG. 27, the library 1701 b is configured of: a tunerlibrary 2701; a recording library 2702; a reproduction library 2703; anda section library 2704.

The tuner library 2701 has a function for allowing a tuner to performtuning at a specified frequency. The tuning information which includes afrequency and a tuner identifier are inputted from the Tuner 1704 e ofthe Java library 1704 into the tuner library 2701. The tuner library2701 specifies a tuner that corresponds to the inputted tuneridentifier. The tuner library 2701 outputs the inputted tuninginformation to the specified tuner. The tuner library 2701 refers to thetuner information stored in the secondary storage unit 1307, andspecifies a tuner that corresponds to the tuner identifier.

The recording library 2702 has a function for storing, into thesecondary storage unit 1307, the MPEG-2 transport stream outputted fromthe tuner. The tuner identifier and information for specifying arecording area within the secondary storage unit 1307 are inputted fromthe recording manager 1706 into the recording library 2702. Therecording library 2702 refers to the tuner information stored in thesecondary storage unit 1307, and specifies the tuner indicated by theinputted tuner identifier. The recording library 2702 stores the MPEG-2transport stream outputted by the specified tuner, into the inputtedrecording area within the secondary storage unit 1307.

The reproduction library 2703 reproduces the MPEG-2 transport streamrecorded in the recording area within the secondary storage unit 1307.Information for specifying the recording area within the secondarystorage unit 1307 is inputted from the service manager 1704 into thereproduction library 2703 via the JMF 1704 a. The reproduction library2703 outputs, to the TS decoder 1302, the MPEG-2 stream data stored inthe inputted recording area within the secondary storage unit 1307. Thereproduction library 2703 sends a command for reproducing AV to the AVdecoder 1303.

Note that the recording library 2702 and the reproduction library 2703are capable of simultaneously operating for the same recording area.With such simultaneous operation, it is possible to realize “time-shiftplayback” which allows the reproduction library 2703 to replay, from thehead, the record data of a certain TV program during the recordingoperated by the recording library 2702. With such time-shift playback,it is possible for the user to view a TV show that is being recordedwithout waiting for the completion of the recording.

The section library 2704 outputs, to another sub-program, the data takenout for the filter processing performed by the TS decoder 1302. Thepacket ID which corresponds to the alert information is inputted fromthe EAS module 1701 c to the section library 2704. For example, in thecase where the packet IDs of the MPEG-2 transport stream are assigned asshown in FIG. 6, the packet ID “400” is inputted from the EAS module1701 c to the section library 2704. The section library 2704 outputs theinputted packet ID to the TS decoder 1302. The section library 2704outputs the alert information outputted by the TS decoder 1302, to theEAS module 1701 c.

The EAS module 1701 c has a function for interpreting the details of thealert information transmitted by the head-end 101. The EAS module 1701 coutputs the packet ID which corresponds to the alert information to thesection library 2704. The alert information is inputted from the sectionlibrary 2704 to the EAS module 1701 c. The alert information may be, forexample, “cable_emergency_alert” defined by “SCTE 18 2002 (FormerlyDVS208), Emergency Alert Message for Cable, approved as a joint standardwith CEA as ANSI-042-2002” standard. FIG. 28 shows one example of a dataformat of the alert information. The alert information 2800 is made upof a header portion 2801 and a data portion 2802. The data portionincludes values such as “Alert_priority” which indicates priority ofalert, “Audio_OOB_source_ID” which indicates a channel identifier of aforced tuning destination, and “Alert_message_time_remainin” whichindicates a valid time of the forced tuning.

The EAS module 1701 c interprets the details of the inputted alertinformation, and judges whether or not a forced tuning is required. As aresult of the judgment, in the case where a forced tuning is required,the EAS module 1701 c outputs, to the service manager 1704 f, thechannel identifier of the forced tuning destination and the valid timeof the forced tuning.

The Java VM 1703 is a Java virtual machine which sequentially analyzesand executes programs written in the Java™ language. Programs written inthe Java language are compiled of intermediate code, called bytecode,which does not depend on the hardware. The Java virtual machine is aninterpreter which executes this bytecode. The Java VM 1703 executes theJava library 1704 that is written in the Java language. Details of theJava language and the Java VM are explained in publications such as“Java Language Specification” (ISBN 0-201-63451-1) and “Java VirtualMachine Specification” (ISBN 0-201-63451-X). In addition, it is possibleto call or be called by other sub-programs not written in the Javalanguage through a Java Native Interface (JNI). Details regarding theJNI can be found in a publication “Java Native Interface” and so on.

The Java library 1704 is a library written in the Java language and iscalled by the Java program in order to control functions of thebroadcast recording and reproduction apparatus. However, there aresituations where a sub-program not written in the Java language, such asthe library 1701 b of the OS 1701, is used as necessary. The Javaprogram can use a function provided by the Java library 1704 by callinga Java Application Programming Interface (API) held by the Java library1704.

A Tuner 1704 c is a Java library for controlling the In-band receivingtuner 1301 a of the broadcast recording and reproduction terminal. FIG.29 shows an internal structure of the Tuner 1704 c.

The Tuner 1704 c is configured of a tuning control unit 2911 and aresource contention detection unit 2921. The tuning control unit 2911controls the In-band receiving tuner 1301 a. When the Java programpasses tuning information to the tuner 1704 c, the tuning control unit2911 uses that information to call a tuning function of the library 1701b, and as a result, it is possible to control an operation of theIn-band receiving tuner 1301 a of the broadcast recording andreproduction terminal. Here, the tuning information is information thatcan specify a frequency, a modulation scheme, and the like.

In the case where a reservation of a tuner hardware resource isrequested, the resource contention detection unit 2921 detects a tunerresource contention with another program, and asks the resourcecontention program distinguishing unit 2901 in the resource manager 1704g to resolve the contention.

The resource contention detection unit 2921 has, as a Java API, areserve (tuner identifier) method for requesting for a reservation of atuner. The program calls out this method so as to request for areservation of the tuner resource specified by a tuner identifier.

When the reserve method is called out, the resource contention detectionunit 2921 refers to the resource management information held by theresource management information holding unit 2903, and examines whetheror not the specified tuner has already been reserved. In the case wherethe tuner has already been reserved by one of the programs, the resourcecontention detection unit 2921 provides the resource contention programdistinguishing unit 2901 within the resource manager 1704 g with aresource identifier which identifies the tuner, a priority level thatdepends on the requester of the tuner, and a program identifier whichidentifies the requester of the tuner, so as to request the resourcecontention program distinguishing unit 2901 to resolve the contention ofthe tuner. Here, the request for a reservation of a resource such as atuner is made by a downloaded Java program or a program that ispreviously incorporated into the terminal. Such Java program andterminal-incorporated program shall be both referred to as “program”. Inthe case of the Java program, a Java program identifier is used as aprogram identifier, while in the case of the terminal-incorporatedprogram, a program name is used as a program identifier. Also, in thecase where the requester of the tuner is a forced tuning from the EASmodule 1701 c, the highest priority is given to that requester. In thecase where the highest priority is given, a reservation of the resourcerequested by the program is permitted unconditionally. For example, inthe case where a program that has a program identifier “EAS module”requests for a reservation of a tuner, “reserve (tuner)” is called,using a resource identifier “tuner” of the tuner to be reserved, as anargument, based on the Java method “reserve” provided for the Tuner 1704c for reserving a tuner. In such case, providing that another programhas already reserved the tuner, the resource contention detection unit2921 detects a resource contention as well as gives the resourceidentifier “tuner”, the priority level “100” and the program identifier“EAS module”, so as to request the resource manager 1704 g to resolvethe resource contention.

An SF 1704 e is a Java library for controlling a function of the PIDfilter 1502 and the section filter 1503 of the broadcast recording andreproduction terminal. When the Java program passes filter conditionssuch as a PID, table_id, and the like to the SF 1704 e, the SF 1704 econtrols the PID filter 1502 and the section filter 1503 using afunction of the library 1701 b based on such conditions, acquires anMPEG-2 section that fulfills desired filter conditions, and passes theMPEG-2 section to the Java program that set filter conditions.

A DSM-CC 1704 d is a Java library for accessing a file system of aDSM-CC object carousel. The DSM-CC object carousel is included in theMPEG-2 section acquired by the SF 1704 e. The DSM-CC is defined by theISO/IEC13818-6 standard, and is a mechanism for sending an arbitraryfile, using the MPEG-2 section. By using this system, it is possible tosend a file from a broadcast station to a terminal. A detailed methodfor implementing the DSM-CC is of no relation to the present invention,and therefore details are omitted.

An AM 1704 b is an application manager that provides a function formanaging the execution and termination of the Java programs contained inthe service. The AM 1704 b extracts a Java program multiplexed onto achannel specified by a specified MPEG-2 transport stream, and causes theexecution or termination of that extracted Java program in accordancewith separately-multiplexed synchronization information. A Java classfile of the Java program is multiplexed onto the MPEG-2 transport streambased on the aforementioned DSM-CC method. In addition, thesynchronization information of the Java program is multiplexed onto theMPEG-2 transport stream in a format called AIT. AIT is an acronym ofApplication Information Table, as defined in chapter 10 of the DVB-MHPspecification (ETSITS 101812 DVB-MHP specification V1.0.2), and is anMPEG-2 section with a table_id of “0x74”.

FIG. 22 is a chart that schematically shows an example of theinformation in the AIT. An AIT version 2200 expresses the version ofthat AIT. The higher the version of the AIT, the newer the AIT is. AITof the same AIT version are repeatedly received, but the AM 1704 b doesnot analyze AIT with the same AIT version as an AIT that has alreadybeen analyzed, and only analyzes an AIT that is newer than thealready-analyzed AIT. A column 2201 is an identifier of the Javaprogram. A column 2202 is control information of the Java program. Inthe control information, there is “autostart”, “present”, “kill”, andthe like; “autostart” means that the terminal apparatus 1300 executesthe Java program automatically in an instant, “present” means notperforming automatic execution, and “kill” means stopping the Javaprogram. A column 2203 is a DSM-CC identifier for extracting the PIDthat includes the Java program, based on the DSM-CC method. A column2204 is a program name of the Java program. Rows 2211, 2212, 2213, and2214 are groups of the information of the Java program. The Java programdefined by row 2211 is a combination of a Java program identifier “301”,control information “autostart”, a DSMCC identifier “1”, and a programname “a/TopXlet”. Similarly, the Java program defined in row 2212 is acombination of a Java program identifier “302”, control information“present”, a DSMCC identifier “1”, and a program name “b/GameXlet”.Here, the three Java programs defined by rows 2211, 2212, and 2214 havethe same DSMCC identifier. This indicates that three Java programs areincluded in one file system encoded based on the DSM-CC method. Here,four types of information are prescribed for the Java program, but inreality, more types of information are defined. Details can be found inthe DVB-MHP specification.

The AM 1704 b specifies the PID and the section filter conditions of theTS packet for sending the MPEG-2 section in which data is inserted,based on the DSMCC method. Here, the packet ID “5014” is provided. As aresult, the AM 1704 b can collect necessary DSMCC MPEG-2 sections. TheAM 1704 b reconstructs the file system from the collected MPEG-2sections according to the DSMCC method, and stores the reconstructedfile system into the primary storage unit 1308. Fetching data such asthe file system from the TS packet in the MPEG-2 transport stream andsaving the data into a storage means such as the primary storage unit1308 and the secondary storage unit 1307 is hereafter calleddownloading.

FIG. 23 is an example of a downloaded file system. In the diagram, acircle represents a directory and a square represents a file. 2301 is aroot directory, 2302 is a directory “a”, 2303 is a directory “b”, 2304is a file “TopXlet.class”, 2305 is a file “GameXlet.class”, 2306 is adirectory “z”, 2307 is a file “MusicXlet.class”, and 2308 is a file“StudyXlet.class”.

Subsequently, the AM 1704 b passes, to the Java VM 1703, a Java programto be executed out of the file system downloaded into the primarystorage unit 1308. Here, assuming that the Java program name to beexecuted is “a/TopXlet”, a file “a/TopXlet.class”, resulting from theappendage of “.class” to the above Java program name, is a file to beexecuted. “/” is a division between the directories and between the filenames, and the file 2304 is the Java program which should be executedwith reference to FIG. 23. Then, after the AM 1704 b passes the file2304 to the Java VM 1703, the file is executed as a Java program in theJava VM.

Every time an AIT with the new AIT version is inputted, the AM 1704 banalyzes the AIT and changes the execution status of the Java program.Here, in the case where “kill” is specified for the control information,the AM 1704 b terminates the Java program.

A JMF 1704 a handles control of reproduction of the video and audiocontained in the service. To be more concrete, the JMF 1704 a inputs thevideo ES and audio ES multiplexed onto the channel specified by thespecified MPEG-2 transport stream into the AV decoder, so that the AVdecoder reproduces them. In the case of reproducing the service directlyfrom the received broadcast wave, it is specified that the MPEG-2transport stream outputted from the adapter 1311 should be reproduced.In the case of reproducing the service that is once recorded into thesecondary storage unit 1307, it is specified that the MPEG-2 transportstream outputted from the recording area 1504 within the secondarystorage unit 1307 should be reproduced.

First, the JMF 1704 a searches for channel information in the library1701 b with a specified channel identifier as a key, and obtains theprogram number. Next, using the SF 1704 e and the like, the PAT isacquired from the MPEG-2 transport stream. Then, the PID of a PMT thatcorresponds to the obtained program number is acquired from theinformation of the PMT. Using again the SF 1704 e, the actual PMT isacquired. The acquired PMT is in the format as shown in FIG. 11, and thePIDs of elementary streams that have “video” and “audio” as stream typesare written therein. When the JMF 1704 a sets those PIDs in the PIDfilter 1502 of the TS decoder 1302, the video ES and the audio ES, ontowhich those PIDs are multiplexed, are reproduced via the AV decoder1303, as shown in FIG. 15 or FIG. 16.

In the particular case where the JMF 1704 a inputs the MPEG-2 transportstream which is already recorded in the secondary storage unit, the JMF1704 a can change the reproduction speed of the video and audio bychanging the speed and position of reading out the MPEG-2 transportstream. Thus, it is possible to perform trick play such as fast-forwardand skip. For example, in the case where the MPEG-2 transport stream isread out at the speed twice as fast as the normal speed, the video andaudio are also reproduced at the speed twice as fast as the normalspeed. In the case where the position of reading out the MPEG-2transport stream is read out after a predetermined interval is skipped,the video and audio will be reproduced with such skip mode operation.The JMF 1704 a controls the secondary storage unit 1307 using thefunctions of the library 1701 b, and changes the speed and position ofreading out the MPEG-2 transport stream. The method of performing suchtrick play in a high level deviates from the scope of the presentinvention, therefore, descriptions are omitted. In order that the Javaprogram instructs on trick play, the JMF 1704 a provides the Javaprogram with, for example, an API called setRate (float factor). Whenthe parameter factor is specified to be 1.0, reproduction is performedat the normal speed, whereas when the parameter factor is specified tobe 2.0, trick play with the speed twice as fast as the normal speed willbe performed.

Having the channel identifier, start time, and end time inputted asinputs, the recording manager 1704 h records the service into thesecondary storage unit 1307, only for the period of time between thestart time and the end time which are specified. For example, when thechannel identifier, start time, and end time are specified by the EPG1702, the recording manager 1704 h waits until the start time isreached. Then, when the start time is reached, the recording manager1704 h starts recording the specified service, and when the end time isreached, the recording manager 1704 h terminates the recording. Thedetails will be described below.

When the recording start time is reached, the recording manager 1704 hfirstly secures, within the secondary storage unit 1307, a recordingarea 1504 for recording the MPEG-2 transport stream from the specifiedstart time to the specified end time. A media identifier is supplied tothe reserved recording area. Next, with the channel identifier as a key,the recording manager 1704 h obtains tuning information that correspondsto the channel identifier, from the channel information held by thelibrary 1701 b. After that, when the tuning information is supplied tothe Tuner 1704 c, the Tuner 1704 c commences tuning. Here, the tuninginformation is information that can specify a frequency, a modulationmethod, and the like. Then, as shown in FIG. 15, the MPEG-2 transportstream is inputted into the TS decoder via the adapter 1311.

Next, using the SF 1704 e, the recording manager 1704 h acquires the PATfrom the MPEG-2 transport stream obtained through the tuning. Inaddition, the recording manager 1704 h searches for the program numberthat corresponds to the specified channel identifier in the library 1701b, and searches for the PID of the corresponding PMT in the PAT. Afterthat, using the SF 1704 e, the recording manager 1704 h acquires anactual PMT, and obtains all the PIDs of the ESs which constitute thespecified channel. The recording manager 1704 h sets the obtained PIDsin the PID filter 1502 of the TS decoder. Moreover, an outputdestination of each hardware constituent element is set through thelibrary 1701 b so as to follow the operation of recording the serviceincluded in the broadcast wave into the secondary storage unit 1307.Then, in accordance with the flow described in FIG. 15, all of the ESsthat make up a desired channel are recorded into the reserved recordingarea 1504.

After that, when the specified end time is reached, the recordingmanager 1704 h stops the tuning operation of the Tuner 1704 c, andcauses the writing of the MPEG-2 transport stream into the recordingarea 1504 to end. In addition, a record information management table asshown in FIG. 21 is created as management information of the MPEG-2transport stream recorded earlier.

FIG. 21 is an example of the record information management table formanaging the record information recorded into the recording area 1504 ofthe secondary storage unit 1307 or the like. The record information isrecorded in chart format. A column 2101 indicates a record identifier. Acolumn 2102 describes channel identifiers. A column 2103 indicates aprogram number. A column 2104 is the record start time for the service,and a column 2105 is the record end time for the service. A column 2106is a media identifier which identifies the MPEG-2 transport stream thatis recorded as the service. Each of rows 2111 and 2112 is a group madeup of a record identifier, a channel identifier, a program number, astart time, an end time, and a media identifier. For example, row 2111shows a record identifier of “000”, a channel identifier of “2”, aprogram number of “102”, a start time of “2005/03/30 11:00”, an end timeof “2005/03/30 12:00”, and a media identifier of “TS_(—)001”.

A service manager 1704 f manages reproduction of the service within theMPEG-2 transport stream that has been recorded into the secondarystorage unit 1307, or the service within the MPEG-2 transport streaminputted from the adapter 1311.

Hereafter, an operation in the case of managing reproduction of theservice contained in the MPEG-2 transport stream that has already beenrecorded in the secondary storage unit 1307 is described. This isequivalent to reproduction of an already-recorded service. In this case,the service manager 1704 f has the record identifier as an input. Theservice which is already recorded in the secondary storage unit 1307 andis specified by that record identifier is to be reproduced.

First, referring to the record information management table created bythe recording manager 1704 h, the service manager 1704 f obtains thechannel identifier and the media identifier of the channel to bereproduced, with the specified record identifier. Then, through thelibrary 1701 b, the service manager 1704 f instructs the secondarystorage unit 1307 to output, to the TS decoder 1302, the MPEG-2transport stream specified by the obtained media identifier. Inaddition, through the library 1701 b, the service manager 1704 f setsthe output destination of each hardware constituent element to flowthrough the path shown in FIG. 16. After that, the secondary storageunit 1307 is provided to the JMF 1704 a as the location of the MPEG-2transport stream, and the channel identifier of the channel to bereproduced is provided. Then, through the operation described above, theJMF 1704 a starts reproduction of the audio and video multiplexed ontothe MPEG-2 transport stream outputted from the secondary storage unit1307. After that, the secondary storage unit 1307 is provided to the JMF1704 a as the location of the MPEG-2 transport stream, and the channelidentifier of the channel to be reproduced is provided. Then, inaccordance with the AIT multiplexed onto the MPEG-2 transport streamoutputted from the secondary storage unit 1307, the AM 1704 b commencesexecution and termination of the Java program multiplexed onto theMPEG-2 transport stream outputted from the secondary storage unit 1307.After that, reproduction of the service is continued until the end ofthe MPEG-2 transport stream outputted from the secondary storage unit1307.

On the other hand, the case of managing reproduction of the servicewithin the MPEG-2 transport stream inputted from the adapter 1311 isdescribed hereafter. This is equivalent to reproduction of the servicedirectly from the broadcast wave. In this case, the service manager 1704f has the channel identifier of the service to be reproduced as theinput.

Through the library 1701 b, the service manager 1704 f instructs theMPEG-2 transport stream outputted from the adapter 1311 shown in FIG. 15to be outputted to the TS decoder 1302. In addition, through the library1701 b, the service manager 1704 f sets the output destination of eachhardware constituent element to flow through the path shown in FIG. 16.After that, the adapter 1311 is provided to the JMF 1704 a as thelocation of the MPEG-2 transport stream, and the channel identifier ofthe channel to be reproduced is provided. Then, through the operationdescribed above, the JMF 1704 a starts reproduction of the audio andvideo multiplexed onto the MPEG-2 transport stream outputted from theadapter 1311. Furthermore, the adapter 1311 is provided to the AM 1704 bas the location of the MPEG-2 transport stream, and the channelidentifier of the channel to be reproduced is provided. Then, inaccordance with the AIT multiplexed onto the MPEG-2 transport streamoutputted from the adapter 1311, the AM 1704 b commences execution andtermination of the Java program multiplexed onto the MPEG-2 transportstream outputted from the secondary storage unit 1307. After that,reproduction of the service is continued until the end of the MPEG-2transport stream outputted from the secondary storage unit 1307.

FIG. 29 is a diagram showing detailed structures of the service manager1704 f, the Tuner 1704 c and the resource manager 1704 g in the Javalibrary 1704.

In the case where a resource such as a tuner is requested to bereserved, the resource manager 1704 g invokes a resource contentionhandler registered by a privileged Java program, or resolves a resourcecontention based on the priority level of the program with reference tothe resource management information, so as to provide an appropriateprogram with a resource that is requested to be reserved.

The resource manager 1704 g is configured of a resource contentionprogram distinguishing unit 2901, a resource contention programprocessing unit 2902, a resource management information holding unit2903, an end program information holding unit 2904, a resourcecontention handler registration unit 2905 and a resource contentionhandler registration privilege judgment unit 2906.

In the case where the Tuner 1704 c or the like requests for areservation of a resource such as a tuner, the resource contentionprogram distinguishing unit 2901 invokes the resource contention handlerwhich is registered in the resource contention handler registration unit2905 by a privileged Java program, or resolves a resource contentionbased on the priority level of the program with reference to theresource management information held in the resource managementinformation holding unit 2903, and notifies the resource contentionprogram processing unit 2902 of the program which permits thereservation of the requested resource.

The resource program processing unit 2902 notifies the program permittedto reserve the resource by the resource contention programdistinguishing unit 2901 of the reservation of the resource. For thenotification to the program that the tuner is reserved, for example,“notifyReserve (tuner)” is called using a resource identifier “tuner”,as an argument, for which the reserve is permitted, based on the Javamethod “notifyReserve” for notifying that a resource is reserved.

Also, the resource contention program processing unit 2902 notifies theprogram forced to release the resource by the resource contentionprogram distinguishing unit 2901 of the release of the resource. For thenotification to the program that the tuner is released, for example,“notifyRelease (tuner)” is called using a resource identifier “tuner”,as an argument, for which the release is forced, based on the Javamethod “notifyRelease” for notifying that a resource is released. Notethat the notifyReserve method and the notifyRelease method are call backfunctions to the program which has requested the reservation of aresource.

In addition, the resource contention program processing unit 2902updates, based on the result, the resource management information heldin the resource management information holding unit 2903 and theprocessing program information held in the processing programinformation holding unit 2904.

In the case where the program which seizes the resource has a validtime, the resource contention program processing unit 2902 has afunction for measuring an execution time of the program with a timer,and reallocating the resource to the program from which the resource isseized, after the valid time has passed. FIG. 34 is a flowchart showingthe case of reallocating the resource to the program from which theresource is seized after the valid time of the program which seizes theresource passes. In the case where the program which seizes the resourcehas a valid time, the resource contention program processing unit 2902holds that valid time. In the resource contention program processingunit 2902, a timer interrupt occurs at predetermined intervals (S3401),and the time indicated by the timer is updated (S3402). For example,when a program having a certain valid time is activated, the timer isreset and a timer interrupt occurs every 0.1 second. When the timerinterrupt occurs, the time indicated at that time is updated to advance0.1 second. In the case where the time indicated by the timercorresponds to the valid time of the program which has seized theresource (S3403), the resource contention program processing unit 2902seizes the resource allocated for that program, and notifies the programthat the resource is seized by calling the notifyRelease method (S3404),as well as reallocates, by the reserve method, a resource to the programwhich had been reserving that resource before the program has seized it,with reference to the processing program information held in theprocessing program information holding unit 2904 (S3405). In addition,the resource contention program distinguishing unit 2901 updates, basedon the result, the resource management information held in the resourcemanagement information holding unit 2903 and the processing programinformation held in the processing program information holding unit 2904(S3406).

The resource management information holding unit 2903 holds the resourcemanagement information which associates a resource such as a tuner andan AV encoder, a program which has been reserving the resource, and apriority level of the program with one another.

The processing program information holding unit 2904 holds processingprogram information which associates the program from which thereserving resource was seized by the resource contention programprocessing unit 2902, with the seized resource.

The resource contention handler registration unit 2905 holds a resourcecontention handler for resolving a contention between the resources,which has already been registered by a privileged Java program and isinvoked in the case where a reservation of a resource such as a tunerand an AV encoder is requested.

In the case where a certain Java program attempts to register a resourcecontention handler, the resource contention handler registrationprivilege judgment unit 2906 judges whether or not the Java program hasa privilege necessary for registering a resource contention handler. Inthe case where the Java program is a Java program that has suchprivilege, the resource contention handler is held in the resourcecontention handler registration unit 2905. For example, in order for acertain Java program to register a resource contention handler“rcHandler” into the resource contention handler registration unit 2905,“setResourceContentionHandler (rcHandler)” is called by the Java method“setResourceContentionHandler” for registering a resource contentionhandler. Here, an array “appID[ ]” of the program identifiers whichcorrespond to programs can be taken as an example of an argument of theresource contention handler “rcHandler”. When “rcHandler(appID[ ])” isinvoked, the return value may be, for example, an array“prioritizedAppID[ ]” of the program identifiers that are sorted in theorder of priority.

FIG. 30 is a diagram showing an example of the resource managementinformation held by the resource management information holding unit2903. A reserved resource 3011 indicates a resource identifier whichidentifies a resource reserved by a program or the like, a program 3012indicates a program which reserves that resource, and a priority 3013indicates how much priority is given to the reservation of thatresource. Here, a program executed in the OS1701 or a Java programexecuted in the Java VM 103 may be taken as an example of such program.For example, row 3001 indicates that a resource “tuner” is reserved witha priority level “20” by a program “module A”. In the presentembodiment, the highest value of priority shall be “100”. In the casewhere the EAS module 1701 c reserves a resource through a forced tuning,the priority level is forcedly set to the highest, that is, “100”.

FIG. 31 is a diagram showing an example of the processing programinformation held by the processing program information holding unit2904. A seized resource 3111 indicates a resource identifier whichidentifies a resource that has been seized through the resolution of theresource contention, whereas a program 3112 indicates a programidentifier which identifies a program from which a reserving resourcehas been seized. Here, a program executed in the OS 1701 or a Javaprogram executed in the Java VM 103 is taken as an example of suchprogram. For example, row 3101 indicates that a resource “tuner” isseized from a program “program C”.

The EPG 1702 is an Electric Program Guide, and is a function which letsa user choose a TV show to be recorded and reproduced. Normalreproduction after receiving a broadcast wave deviates from the scope ofthe present invention and thus descriptions are omitted.

In the case of recording a TV show, the EPG 1702 displays a list ofbroadcasted TV shows, and lets the user choose a desired TV show. FIG.19 is an example of a screen display for letting the user select a TVshow to be recorded. A time 1901 and channels 1902 and 1903 aredisplayed in a grid, and it is possible to check the TV shows of eachchannel that is recordable at each time. It is possible for the user tomove a focus 1911 within the screen by using top, bottom, right, andleft cursor buttons 1401 to 1404 which are included in the input unit1310 of the terminal apparatus 1300. Furthermore, when an OK button 1405is pushed, the TV show which is currently highlighted is selected to berecorded. The EPG 1702 acquires the channel identifier of the TV showfrom the library, and when the TV show to be recorded is selected by theuser, notifies the channel identifier, start time, and end time of theTV show to the recording manager 1704 h. Based on that information, therecording manager 1704 h records the TV show into the secondary storageunit 1307.

On the other hand, in the case of reproducing an already-recorded TVshow, the EPG 1702 displays a list of the already-recorded TV shows, andlets the user choose a desired TV show. FIG. 18 is an example of ascreen display for causing selection of an already-recorded TV show. AllTV shows stored in the secondary storage unit 1307 at that point in timeare listed. It is possible for the user to move a focus 1801 within thescreen by using the top and bottom cursor buttons 1401 and 1402, whichare included in the input unit 1310 of the terminal apparatus 1300.Furthermore, when the OK button 1405 is pushed, the TV show which iscurrently highlighted is selected to be reproduced. The EPG 1702acquires the record identifier of the TV show from recording manager1704 h, and when the TV show to be reproduced is selected by the user,notifies the service manager 1704 f of the record identifier of that TVshow. Based on that information, the service manager 1704 f reads outthe TV show from the secondary storage unit 1307 and reproduces it.

The operation characteristic to the present embodiment applying theconfiguration as described above will be described below with referenceto a flowchart.

FIG. 32 is a flowchart showing the case where a certain Java programregisters a resource contention handler into the resource contentionhandler registration unit 2905 in the resource manager 1704 g.

The Java program attempting to register a resource contention handlerrequests the resource manager 1704 g to register the resource contentionhandler (S3201). The resource manager 1704 g, having received therequest for the registration of the resource contention handler, judges,in the resource contention handler registration privilege judgment unit2906, whether the Java program has a privilege necessary for registeringthe resource contention handler (S3202). In the case of judging that theJava program has a privilege necessary for registering the resourcecontention handler, the resource contention handler requested by theJava program is registered into the resource contention handlerregistration unit 2905 (S3203).

FIG. 33 is a flowchart showing how a contention between resources suchas tuners is resolved in the case where a forced tuning is caused by theEAS module 1701 c.

When the EAS module 1701 c causes a forced tuning, the EAS module 1701 coutputs a channel identifier and a valid time of the forced tuning, tothe service manager 1704 f. Next, with the channel identifier as a key,the service manager 1704 f obtains tuning information that correspondsto the channel identifier, from channel information held by the library1701 b. After that, the tuning information is supplied to the Tuner 1704c, the Tuner 1704 c commences tuning. Here, the tuning information isinformation that can specify a frequency, a modulation method, and thelike. In the case where the resource contention detection unit 2921 inthe Tuner 1704 c detects a resource contention between a forced tuningand a service that is already executed, whether or not a service to beexecuted attributes to the forced tuning is judged (S3302). In the casewhere it is judged that the service attributes to the forced tuning, thepriority level is forcedly set to the highest “100” (S3303). In the caseotherwise, an appropriate value is set for the priority level dependingon the requester of the service (S3304). Either of the value being set,the resource contention detection unit 2921 passes, to the resourcemanager 1704 g, a priority level that is set, a resource identifierwhich identifies the tuner in contention, and a program identifier whichidentifies the requester of the tuner, and requests the resource manager1704 g to resolve the resource contention (S3305). In the resourcemanager 1704 g, in the case where the passed priority is the highest(S3306), the resource contention program distinguishing unit 2901 refersto the resource management information held in the resource managementinformation holding unit 2903, and distinguishes the contention programwhich reserves the resource (S3307). The resource contention programdistinguishing unit 2901 then passes the program identifier whichidentifies the distinguished contention program to the resourcecontention program processing unit 2902, seizes a resource in contentionfrom that contention program, and notifies the contention program thatthe resource is seized as well as notifies the requester program thatthe seized resource is reserved (S3310). Moreover, the resourcecontention program distinguishing unit 2901 updates, based on theresult, the resource management information held in the resourcemanagement information holding unit 2903 and the processing programinformation held in the processing program information holding unit 2904(S3311). In the case where the passed priority is not the highest inS3306, the resource contention program distinguishing unit 2901 judgesif the resource contention handler registration unit 2905 has theresource contention handler that has been registered by a privilegedJava program (S3308). In the case where such resource contention handleris registered, the resource contention handler registration unit 2905invokes the resource contention handler so as to consign the resolutionof the resource contention to the resource contention handler (S3309).In the case where such resource contention handler is not registered,the resource contention program distinguishing unit 2901 refers to theresource management information held in the resource managementinformation holding unit 2903, and distinguishes the contention programwhich reserves that resource (S3307). In the case where the prioritylevel corresponding to the distinguished contention program is comparedwith the priority level corresponding to the requester program, and as aresult, the latter is higher, the resource contention programdistinguishing unit 2901 passes a program identifier which identifiesthat contention program to the resource contention program processingunit 2902, seizes a resource in contention from the contention programand notifies the contention program that the resource is seized as wellas notifies the requester program that the seized resource is reserved(S3310). In addition, the resource contention program distinguishingunit 2901 updates, based on the result, the resource managementinformation held in the resource management information holding unit2903 and the processing program information held in the processingprogram information holding unit 2904 (S3311). In S3311, a programidentifier which identifies the program that is deprived of the resourceby the program in contention and a resource identifier which identifiesthat resource are held, as the processing program information, in anassociated manner in the processing program information holding unit2904.

As described above, even in the case where a forced tuning is caused bythe EAS module 1701 c, the service manager 1704 f sets the prioritylevel by the requester of the resource, and also, the resourcecontention program distinguishing unit 2901 permits the program with thehighest priority level to forcedly reserve the resource with priorityover other programs without invoking a resource contention handler.Thus, it is possible to rapidly execute a forced tuning so as to notifythe user of an alert, without destroying the conventional framework forsolving the problem of resource contention and without unexpectedblocking upon invoking a resource contention handler which is alreadyregistered by a privileged Java program.

Second Embodiment

Hereafter, the broadcast receiving terminal and the program executionmethod according to the second embodiment of the present invention aredescribed with reference to the drawings.

The second embodiment provides an embodiment of a different hardwareconfiguration for realizing the first embodiment described above. Thehardware configuration and the like used in the second embodiment areshown in FIGS. 24 and 25.

FIG. 24 shows a conceptual rendering which represents the physicalconnection sequence, processing details, and input/output data format ofeach device during recording of the service. Constituent elements in thefigure that have identical numbers to the constituent elements shown inFIG. 15 have already been described in the first embodiment, andtherefore descriptions are omitted. As opposed to FIG. 15, with thehardware configuration shown in FIG. 24, after passing through theprimary storage unit 1308, the section that is filtered by the TSdecoder 1302 is recorded into the recording area 1504 without goingthrough the multiplexer. Here, a recording method when recording thesection into the recording area 1504 differs depending on a format ofthe section.

In the case of a file system recorded within an MPEG-2 transport streamin a DSMCC file system, the file system is converted into a file systemformat unique to the recording area 1504, which is in turn unique to aterminal, and records the file system into the recording area 1504.

In addition, with regard to an AIT, the AIT is converted into a formatof an expanded record information management table, as in FIG. 26, andis recorded into the recording area 1504. The record informationmanagement table shown in FIG. 26 is an expanded version of the recordinformation management table shown in FIG. 21; items identified with thesame numbers in both tables have the same meaning as those in the recordinformation management table shown in FIG. 21. The descriptions aretherefore omitted.

Each of rows 2611 and 2612 shows record information of one service. Eachof the rows 2611, 2612 has a record identifier 2101, a channelidentifier 2102, a program number 2103, a service record start time2104, a service record end time 2105, a media identifier 2106, and areference to an AIT information management table. The AIT informationmanagement table has a media time 2621 and an AIT version 2622corresponding thereto. The media time 2621 is the time at the time ofreproduction of the corresponding MPEG-2 transport stream, and shows aposition in the corresponding MPEG-2 transport stream. The AIT versionnumber 2622 corresponds to an AIT version number 2200 in FIG. 22. Forexample, record information of the service that has “001” as a recordidentifier 2101 has “TS_(—)002” as a media identifier 2106, and when themedia time 2621 indicates “00:00:00” in the referred AIT informationmanagement table, the corresponding AIT version number 2622 is “1”. Inthe same manner, when the media time 2621 indicates “00:05:00”, thecorresponding AIT version number 2622 is “2”, and when the media time2621 indicates “00:20:00”, the corresponding AIT version number 2622 is“3”. For example, at the time of reproduction of the service that has“001” as a channel identifier 2601, referring to the record informationmanagement table, the MPEG-2 transport stream that is multiplexed withthe video and audio specified by the media identifier 2602 of“TS_(—)002” is reproduced; in addition, referring to the AIT informationmanagement table, when the media time 2621 reaches “00:00:00”, controlwhich causes the Java program to start up or terminate is performed inaccordance with the AIT with an AIT version number 2622 of “1”. In asimilar manner, the control which causes the Java program to start up orterminate is performed in accordance with the AIT with an AIT versionnumber 2622 of “2” when the media time 2621 reaches “00:05:00”, and inaccordance with the AIT with an AIT version number 2622 of “3” when themedia time 2621 reaches “00:20:00”. The actual AIT is converted, as abinary file in private section format, into the file system formatunique to the recording area 1504, which is in turn unique to aterminal, and is recorded into the recording area 1504. The recordedfile is given a unique file name by which it can be uniquely identified,and which is recorded in the record information administration table asan AIT file name 2623.

In an actual broadcast wave, AITs with the same AIT version arerepeatedly transmitted any number of times, but in the presentembodiment, by detecting a change in the received AIT version, only thefirst AIT that is updated at that point in time is recorded into therecording area 1504.

FIG. 25 shows a conceptual rendering which represents the physicalconnection sequence, processing details, and input/output data format ofeach device during the reproduction of the service. Constituent elementsin the diagram that have identical numbers to the constituent elementsshown in FIG. 16 have already been described in the first embodiment,and therefore descriptions are omitted.

The hardware configuration shown in FIG. 25 differs from that in FIG. 16in that the section recorded in the recording area 1504 is read into theprimary storage without going through the TS decoder. The media timethat corresponds to the present reproduction time of the MPEG-2transport stream read out from the recording area is searched for, andthe AIT and DSMCC file system corresponding to that media time are readout from the file.

Here, the case of reproducing, from the recording area 1504, the servicecorresponding to the channel identifier “001”, using the AIT shown inFIG. 22 and the record information management table shown in FIG. 26, istaken as an example.

When the service corresponding to the channel identifier “001” isspecified as a service to be reproduced, each of the audio, video andJava program belonging to and the service are reproduced and activated,as already mentioned in the description regarding the reproduction ofthe service.

In the case where a media time to start the reproduction is notspecified, the reproduction is commenced from the media time 2621 of“00:00:00”. In other words, as audio and video, the MPEG-2 transportstream, having a media identifier 2102 of “TS_(—)002” corresponding to arecord identifier 2101 of “001”, is reproduced from the media time 2621of “00:00:00”. Referring to the AIT information management table, sincethe AIT version 2622 corresponding to the media time 2621 of “00:00:00”is “1”, the AIT with the AIT version 2200 of “1” is read out from thefile. Based on the details of the AIT, the Java program corresponding tothe program name 2204 having control information 2202 of “autostart” isactivated.

Then, the reproduction of the service continues, and when the position,at which the MPEG-2 transport stream corresponding to the mediaidentifier “TS_(—)002” is being reproduced, indicates the media time2621 of “00:05:00”, referring to the AIT information management table,since the AIT version number 2622 corresponding to the media time 2621of “00:05:00” is “2”, the Java program corresponding to the program name2204 having control information 2202 of “autostart” is activated, andalso, the Java program corresponding to the program name 2204 havingcontrol information of “destroy” or “kill” is terminated, based on theAIT with the AIT version number 2200 of “2”. Here, referring to FIG. 22,the program name having control information 2202 of “destroy” is“/b/MusicXlet” and the program name having control information 2202 of“kill” is “/z/StudyXlet”, therefore, in the case where the Java programscorresponding to these program names are executed at the media time 2621of “00:05:00”, those Java programs are terminated.

Then, the reproduction of the service continues, and when the position,at which the MPEG-2 transport stream corresponding to the mediaidentifier 2106 “TS_(—)002” is being reproduced, indicates the mediatime 2621 of “00:20:00”, referring to the AIT information managementtable, the AIT version number 2622 corresponding to the media time 2621of “00:20:00” is “3”, therefore, the Java program corresponding to theprogram name 2204 having control information 2202 of “autostart” isactivated, and also, the Java program corresponding to the program name2204 having control information 2202 of “destroy” or “kill” isterminated, based on the AIT with the AIT version 2200 of “3”.

According to the second embodiment described above, it is possible tocombine the video and audio multiplexed by the multiplexer with theDSMCC file system and AIT file which are separately recorded in adifferent format, so as to reproduce the service. Thus, the DSMCC filesystem and AIT which are repeatedly transmitted any number of timesthrough broadcast need to be recorded only for the amount equivalent toone update, so that it is possible to reduce the consumption of a memorycapacity in a recording area.

Third Embodiment

Hereafter, the broadcast receiving terminal and the program executionmethod according to the third embodiment of the present invention aredescribed with reference to the drawings.

The hardware configuration and the like used in the third embodiment areidentical to the first embodiment of the present invention; therefore,FIGS. 1 to 16 shall be used. The constituent elements in the diagramshave the same function as those described in the first embodiment,descriptions are omitted.

The software configuration according to the third embodiment is the sameas the one shown in FIG. 17. The constituent elements other than theservice manager 1704 f and the resource manager 1704 g have the samefunction as the function of the constituent elements in the softwareconfiguration according to the first embodiment, therefore, descriptionsare omitted. The various data formats used in the third embodiment arealso the same as those shown in FIGS. 20 to 22, FIG. 30 and FIG. 31,therefore, descriptions are omitted.

FIG. 29 is a diagram showing detailed configurations of the servicemanager 1704 f, the Tuner 1704 c and the resource manager 1704 g in theJava library 1704.

The Tuner 1704 c is, as in the first embodiment, configured of thetuning control unit 2911 and the resource contention detection unit2921.

As the tuning control unit 2911 has the same function as the onedescribed in the first embodiment, descriptions are omitted.

In the case where the service manager 1704 f or the like requests for areservation of a tuner hardware resource, the resource contentiondetection unit 2921 detects a tuner resource contention with otherprograms, and asks the resource contention program distinguishing unit2901 within the resource manager 1704 g to resolve the contention.

The resource contention detection unit 2921 has, as a Java API, areserve (tuner identifier) method for requesting for a reservation of atuner. The program calls out this method and requests for a reservationof the tuner resource specified by the tuner identifier.

The reserve method being called out, the resource contention detectionunit 2921 refers to the resource management information held by theresource management information holding unit 2903, and examines whetheror not the specified tuner is already reserved. In the case where thespecified tuner is already reserved by any of the programs, the resourcecontention detection unit 2921 gives, to the resource contention programdistinguishing unit 2901 within the resource manager 1704 g, a resourceidentifier which identifies that tuner and a program identifier whichidentifies the requester of the reservation of that tuner, so as torequest the resource contention program distinguishing unit 2901 toresolve the contention of that tuner. The request for the reservation ofa resource such as a tuner here is requested from a downloaded Javaprogram or a program that is already incorporated into the terminal. TheJava program and the terminal-incorporated program shall be bothreferred to as “program”. In the case of the Java program, a Javaprogram identifier is used as a program identifier, while in the case ofthe terminal-incorporated program, a program name is used as a programidentifier. For example, in the case where the program that has aprogram identifier “EAS module” requests for a reservation of a tuner,“reserve (tuner)” is called, using a resource identifier “tuner” of thetuner to be reserved, as an argument, based on the Java method “reserve”provided for the Tuner 1704 c for reserving a tuner. In such case,providing that another program has already reserved the tuner, theresource contention detection unit 2921 detects a resource contention aswell as gives the resource identifier “tuner” and the program identifier“EAS module”, so as to request the resource manager 1704 g to resolvethe resource contention.

The resource manager 1704 g is, as in the first embodiment, configuredof the resource contention program distinguishing unit 2901, theresource contention program processing unit 2902, the resourcemanagement information holding unit 2903, the end program informationholding unit 2904, the resource contention handler registration unit2905 and the resource contention handler registration privilege judgmentunit 2906.

The constituent elements other than the resource contention programdistinguishing unit 2901 have the same function as those described inthe first embodiment, descriptions are omitted.

In the case where the Tuner 1704 c or the like requests for areservation of a resource such as a tuner, the resource contentionprogram distinguishing unit 2901 calls a resource contention handlerwhich is registered in the resource contention handler registration unit2905 by a privileged Java program, or resolves a resource contentionbased on the priority level of the program with reference to theresource management information held in the resource managementinformation holding unit 2903, and notifies the resource contentionprogram processing unit 2902 of the program which permits thereservation of the requested resource. In the case of holding theresource priority reserve program information shown in FIG. 35, and alsobeing requested to reserve a resource such as a tuner by the Tuner 1704c, the resource contention program distinguishing unit 2901 judgeswhether the requester of the reservation of that resource is the programto which the reservation of that resource is permitted, with referenceto the resource priority reserve program information, and also, requeststhe resource contention program processing unit 2902 to allocate aresource to an appropriate program, or the like.

FIG. 35 is a diagram which shows an example of the resource priorityreserve program information held by the resource contention programdistinguishing unit 2901. A forcedly-reserved resource 3511 is aresource identifier which identifies the resource which is permitted tobe forcedly reserved by the corresponding priority program 3512, whereasthe priority program 3512 is a program identifier which identifies theprogram that is permitted to reserve the corresponding forcedly-reservedresource 3511 with priority over other programs. Here, a programexecuted in the OS 1701 or a Java program executed in the Java VM 103 istaken as an example of such program. For example, row 3501 indicatesthat a program called “module B” is permitted to forcedly reserve aresource “tuner” with the priority over other programs.

The operation characteristic to the present embodiment applying theconfiguration as described above will be described below with referenceto a flowchart.

The flow of the operation in the case where a Java program registers aresource contention handler into the resource contention handlerregistration unit 2905 in the resource manager 1704 g is as same as theone described in the first embodiment, therefore, FIG. 32 shall be used.

FIG. 36 is a flowchart showing how a contention of a resource such as atuner is resolved in the case where a forced tuning is caused by the EASmodule 1701 c.

When a forced tuning is caused by the EAS module 1701 c, the EAS module1701 c outputs a channel identifier and a valid time of the forcedtuning to the service manager 1704 f. Next, with the channel identifieras a key, the service manager 1704 f obtains tuning information thatcorresponds to the channel identifier, from channel information held bythe library 1701 b. After that, when the tuning information is suppliedto the Tuner 1704 c, the Tuner 1704 c commences tuning. Here, the tuninginformation is information that can specify a frequency, a modulationmethod, and the like. In the case of detecting a tuner resourcecontention between the forced tuning and the service that is alreadyexecuted (S3601), the resource contention detection unit 2921 passes, tothe resource manager 1704 g, a resource identifier which identifies thetuner in contention and a program identifier which identifies therequester of the tuner, so as to request the resource manager 1704 g toresolve the resource contention (S3602). Then, the resource contentionprogram distinguishing unit 2901 in the resource manager 1704 g refersto the held resource priority reserve program information, and judgeswhether the requester of that resource is permitted to forcedly reservethat resource with priority over other programs (S3603). In the casewhere the requester program is permitted to forcedly reserve thatresource, the priority level of the program is set to the highest(S3604). In the case otherwise, an appropriate value is set for thepriority level which depends on the requester program of the service(S3605). In the case where the priority level is the highest (S3606),the resource contention program distinguishing unit 2901 refers to theresource management information held in the resource managementinformation holding unit 2903, and distinguishes the contention programwhich reserves that resource (S3607). The resource contention programdistinguishing unit 2901 passes a program identifier which identifiesthe distinguished contention program to the resource contention programprocessing unit 2902, seizes a resource in contention from thatcontention program, and notifies the contention program that theresource is seized as well as notifies the requester program that theseized resource is reserved (S3610). Moreover, the resource contentionprogram distinguishing unit 2901 updates, based on the result, theresource management information held in the resource managementinformation holding unit 2903 and the processing program informationheld in the processing program information holding unit 2904 (S3611). Inthe case where the passed priority level is not the highest in S3606, itis judged whether the resource contention handler registration unit 2905has the resource contention handler that has previously been registeredby a privileged Java program (S3608). In the case where such resourcecontention handler is registered, the resource contention programdistinguishing unit 2901 consigns the resolution of that resource to theresource contention handler by calling the resource contention handler(S3609). In the case where such resource contention handler is notregistered, the resource contention program distinguishing unit 2901refers to the resource management information held in the resourcemanagement information holding unit 2903, and distinguishes thecontention program which reserves that resource (S3607). In the casewhere the priority level corresponding to the distinguished contentionprogram is compared with the self-possessing priority level, and as aresult, the latter is higher, the resource contention programdistinguishing unit 2901 passes a program identifier which identifiesthat contention program to the resource contention program processingunit 2902, seizes a resource in contention from the contention program,and notifies the contention program that the resource is seized as wellas notifies the requester program that the seized resource is reserved(S3610). Moreover, the resource contention program distinguishing unit2901 updates, based on the result, the resource management informationheld in the resource management information holding unit 2903 and theprocessing program information held in the processing programinformation holding unit 2904 (S3611). In S3611, a program identifierwhich identifies the program that is deprived of the resource by theprogram in contention and a resource identifier which identifies thatresource are held, as the processing program information, in anassociated manner in the processing program information holding unit2904.

The flow of the operation in the case of reallocating a resource such asa tuner to the program that was reserving that resource prior to aforced tuning caused by the EAS module 1701 c, after the valid time ofthe forced tuning has elapsed, is as same as the one described in thefirst embodiment, therefore, FIG. 34 shall be used.

As described above, even in the case where a forced tuning is caused bythe EAS module 1701 c, the resource contention program distinguishingunit 2901 refers to resource priority reserve program information, andalso distinguishes the program that is permitted to forcedly reserve aresource with priority over other programs. Thus, it is possible torapidly execute a forced tuning so as to notify the user of an alert,without destroying the conventional framework for solving the problem ofresource contention and without unexpected blocking upon calling aresource contention handler which is already registered by a privilegedJava program.

Some of the embodiments described above indicate embodiments of thepresent invention, but other embodiments can be considered withoutdeviating from the scope of the present invention.

In the embodiments, a configuration for a cable system has been shown,but the present invention can be applied independent of the type ofbroadcast system. For example, the present invention can easily beapplied to a satellite system, a ground wave system, or a TV showdistribution system that uses an IP network. In addition, as the presentinvention has no direct relationship with the differences between eachbroadcast system, the present invention can be applied to an arbitrarytransmission medium regardless of the broadcast system. The presentinvention is also applicable regardless of whether the system is a wiredor wireless system.

It is not necessary for the AV decoder to decode video and audio at thesame time. The present invention can be implemented even if the AVdecoder is configured as separate video and audio decoders. In addition,the AV decoder may have a decode function for data such as closedcaptioning and the like without any interference. The audio signal andvideo signal decoded by the AV decoder may be scrambled at any stage upuntil being stored in the recording area 1504.

In the embodiments, an example is given in which an adapter thatcontrols conditional access system has been introduced, but the adapteris not necessary for the implementation of the present invention. Theadapter may be of any format, and a configuration without the adapter isalso possible. In such a case, in FIG. 15, the MPEG-2 transport streamfrom the tuner is inputted directly into the TS decoder. The presentinvention is applicable is such a case as well. In addition,descrambling of the MPEG-2 transport stream by the adapter does notnecessarily have to be carried out before the TS decoder. Aconfiguration in which the adapter is in an arbitrary position and isused to descramble the MPEG-2 transport stream is easily implementable,and the present invention is applicable in such a case as well.

Regarding an encoding format into which the AV encoder encodes the audioand video signal, an arbitrary format is acceptable. The presentinvention is applicable regardless of the encoding format.

A multiplexing format of the multiplexer may also be an arbitraryformat. The present invention is applicable regardless of themultiplexing format.

The display and the speaker may be contained within the broadcastrecording and reproduction apparatus, or an external display and speakermay be connected to the broadcast recording and reproduction apparatus.The present invention is applicable regardless of the location andnumber of the display and speaker.

The present invention can be implemented even if the CPU itself is asystem which performs multiple processes, the operations being all orsome of TS decoding, AV decoding, AV encoding, and multiplexing.

As a format for recording the service, the MPEG-2 transport stream canalso be recorded directly into the recording area after being outputtedfrom the tuner, without going through the TS decoder; or, the format ofthe MPEG-2 transport stream from the tuner can be converted, byinstalling a translator that converts the format of the MPEG-2 transportstream, and recorded into the recording area. The present invention canbe implemented regardless of the service recording method.

Some of the Java virtual machines translate the bytecode into anexecutable form which can be interpreted by the CPU, and pass theresultant to the CPU which executes it; the present invention isapplicable in such case as well.

The above embodiments describe a method for implementation regarding theAIT in which the transport stream is obtained from in-band; however, themethod for referring to the Java program which the AM shall execute doesnot solely depend on the AIT. In the OCAP which is assumed to be used inthe US cable system, XAIT which describes reference information of anapplication program is utilized in the OOB shown in FIG. 3. In addition,methods such as starting a program pre-recorded in the ROM, starting aprogram downloaded and recorded in the secondary storage unit, and so oncan be considered.

Although only some exemplary embodiments of this invention have beendescribed in detail above, those skilled in the art will readilyappreciate that many modifications are possible in the exemplaryembodiments without materially departing from the novel teachings andadvantages of this invention. Accordingly, all such modifications areintended to be included within the scope of this invention.

INDUSTRIAL APPLICABILITY

With the broadcast receiving terminal and the program execution methodaccording to the present invention, it is possible to rapidly execute aforced tuning so as to notify the user of an alert, without destroyingthe conventional framework for solving the problem of resourcecontention and without unexpected blocking upon calling a resourcecontention handler that is already registered by a privileged Javaprogram. For example, the present invention is applicable to cable STB,digital TV, and the like. Furthermore, the present invention is alsoapplicable in devices with a broadcast receiving function, such as, forexample, a cellular phone device and the like.

What is claimed is:
 1. A broadcast receiving terminal, comprising: astorage configured to store a program among a plurality of programsincluding a specified program; a processor; a program executionerconfigured to control execution of the program, via the processor,according to a priority level of the program; a resource contentiondetector configured, in a case where a reservation of a resource isrequested according to the execution of the program performed by saidprogram executioner, to detect, via the processor, whether or not acontention of the resource occurs due to a fact that the requestedresource has already been reserved by another program executed by saidprogram executioner; a resource reservation program determinerconfigured, via the processor, to determine whether or not the programreserves the resource, and a resource reservation program notifierconfigured to notify the program, of the reservation of the resource,which is permitted to reserve the resource, via the processor, based onthe determination made by said resource reservation program determiner,wherein, (i) when the contention occurs and the program requesting thereservation of the resource is not the specified program, (i-a) in thecase where a resource contention handler is registered, call theresource contention handler for resolving the contention and determineto permit a program to reserve the resource which is under contention,according to a priority level returned from the resource contentionhandler, and (i-b) in the case where the resource contention handler isnot registered, determine to permit the program to reserve the resourcewhich is under contention, according to the priority level of theprogram, and (ii) when the contention occurs and the program requestingthe reservation of the resource is the specified program, the resourcereservation program determiner permits the specified program to reservethe resource without using the resource contention handler and checkingwhether or not the resource contention handler is registered; and theresource reservation program determiner, after the specified program hasbeen executed, has the resource reservation program notifier notify thatthe resource has been released by the specified program.
 2. A programexecution method in a broadcast receiving terminal, the methodcomprising: storing, via a storage, a program among a plurality ofprograms including a specified program; controlling, via a processor,execution of the program according to a priority level of the program;detecting, via the processor, when a reservation of a resource isrequested according to the execution of the program performed by theprocessor, whether or not a contention of the resource occurs due to afact that the requested resource has already been reserved by anotherprogram executed by the processor; determining, via the processor,whether or not the program reserves the resource, and notifying theprogram, of the reservation of the resource, which is permitted toreserve the resource, via the processor, based on the determination madeby the processor, wherein, (i) when the contention occurs and theprogram requesting the reservation of the resource is not the specifiedprogram, (i-a) in the case where a resource contention handler isregistered, calling, via the processor, the resource contention handlerfor resolving the contention and determining, via the processor, topermit a program to reserve the resource which is under contention,according to a priority level returned from the resource contentionhandler, and (i-b) in the case where the resource contention handler isnot registered, determining, via the processor, to permit the program toreserve the resource which is under contention, according to thepriority level of the program, and (ii) when the contention occurs andthe program requesting the reservation of the resource is the specifiedprogram, determining, via the processor, to permit the specified programto reserve the resource without using the resource contention handlerand checking whether or not the resource contention handler isregistered; and notifying, via the processor, that the resource has beenreleased by the specified program, after the specified program has beenexecuted.